const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const Router = require('koa-router')
const app = new Koa()
const router = new Router()
const usersRouter = new Router({ prefix: '/users' })

// 内存数据库，重启程序就没有了
const db = [{ 'name': '李雷' }]

// 中间件
router.get('/', (ctx) => {
    ctx.body = '这是主页'
})
usersRouter.get('/', ctx => {
    // ctx.set('Allow', 'GET,POST')
    ctx.body = db
})
// 创建
usersRouter.post('/', ctx => {
    db.push(ctx.request.body)
    ctx.body = ctx.request.body
})
usersRouter.get('/:id', ctx => {
    // ctx.body = db[ctx.params.id * 1] // id是字符串，转换为数字
    ctx.body = db[+ctx.params.id] // id是字符串，转换为数字
})
// 修改
usersRouter.put('/:id', ctx => {
    db[+ctx.params.id] = ctx.request.body
    ctx.body = ctx.request.body
})
usersRouter.delete('/:id', ctx => {
    db.splice(+ctx.params.id, 1)
    ctx.status = 204
})
app.use(bodyParser())
app.use(router.routes())
app.use(usersRouter.routes())
// 支持所有接口的options请求
app.use(router.allowedMethods())
app.listen(3000)